
#include "process_injector.h"
#include "tools/helpMacros.h"


#include SD_TL_PLATFORM_IMPL_INC(.,ProcessInjector)



using namespace sd;
using namespace prin;


void Process::Inject( const std::wstring& dllName, const std::wstring& dllParams )
{
	impl_->Inject(dllName, dllParams);
}


std::wstring Process::getName()const
{
	return impl_->getName();
}
int Process::getId()const
{
	return impl_->getId();
}
std::wstring Process::getCmd()const
{
	return impl_->getCmd();
}


bool Process::isStarted()const
{
	return impl_->isStarted();	
}
void Process::start()const
{
	impl_->start();
}





Process ProcessInjector::createProcess(const std::wstring& name)
{
    return Process(impl_.createProcess(name));
}


Process ProcessInjector::attachToProcess( int uid )
{
    return Process(impl_.attachToProcess(uid));
}


ProcessInjector::ProcessInjector():impl_( impl::ProcessInjectorImpl::getInstance()){}